Ejercicio 1
Sea \(f(x)=\sqrt{x}-\cos x\). Usa el método de la bisección para encontrar \(x\in [0,1]\) tal que \(f(x)=0\).
f_a <- function(x){sqrt(x)-cos(x)}
x_a <- seq(0, 1.5, by=0.0001)
y_a <- f_a(x_a)
graf_a <- ggplot()+
geom_vline(xintercept = 0, linetype="dashed")+ #eje x
geom_hline(yintercept = 0, linetype="dashed")+ #eje y
geom_line(aes(x=x_a, y=y_a), color="red", linewidth=1)+
#coord_fixed(ratio = 1)+ # misma escala en los ejes
labs(x="x", y="f(x)", title="Primera gráfica")+
theme_bw()
ggplotly(graf_a)Otra opción
graf_a <- ggplot()+
#geom_vline(xintercept = 0, linetype="dashed")+ #eje x
#geom_hline(yintercept = 0, linetype="dashed")+ #eje y
geom_function(fun=f_a, color="red", linewidth=1, n=200)+
#coord_fixed(ratio = 1)+ # misma escala en los ejes
xlim(0, 1.5)+
labs(x="x", y="f(x)", title="Primera gráfica")+
theme_bw()
ggplotly(graf_a)Utilizando la función desarrollada en clase
metodo_biseccion(f_a,0,1,1e-10,N=500)## $aprox
## [1] 0.5000000 0.7500000 0.6250000 0.6875000 0.6562500 0.6406250 0.6484375
## [8] 0.6445312 0.6425781 0.6416016 0.6420898 0.6418457 0.6417236 0.6416626
## [15] 0.6416931 0.6417084 0.6417160 0.6417122 0.6417141 0.6417150 0.6417146
## [22] 0.6417143 0.6417145 0.6417144 0.6417144 0.6417144 0.6417144 0.6417144
## [29] 0.6417144 0.6417144 0.6417144 0.6417144 0.6417144 0.6417144
##
## $precision
## [1] 5.820766e-11
##
## $iteraciones
## [1] 34
La raíz es 0.6417144 Utiliando la función de pracma:
bisect(f_a,0,1,500)## $root
## [1] 0.6417144
##
## $f.root
## [1] -2.220446e-16
##
## $iter
## [1] 54
##
## $estim.prec
## [1] 1.110223e-16
Ejercicio 2
Usa el método de la bisección para encontrar una raíz con una precisión de \(10^{-2}\) para \(x^3-7x^2+14x-6=0\) en cada intervalo.
\[\begin{equation} a) [0,1]\qquad\qquad b) [1, 3.2]\qquad\qquad c)[3.2, 4] \end{equation}\]
Ejercicio 3
Usa el metodo de la bisección para encontrar las soluciones con una precisión de \(10^{-5}\) para los siguientes problemas.
\(x-2^{-x}=0\) para \(0\leq x\leq 1\)
\(e^x-x^2+3x-2=0\) para \(0\leq x\leq 1\)
f_a <- function(x){exp(x)-x^2+3*x-2}
x_a <- seq(-5, 5, by=0.0001)
y_a <- f_a(x_a)
graf_a <- ggplot()+
geom_vline(xintercept = 0, linetype="dashed")+ #eje x
geom_hline(yintercept = 0, linetype="dashed")+ #eje y
geom_line(aes(x=x_a, y=y_a), color="red", linewidth=1)+
#coord_fixed(ratio = 1)+ # misma escala en los ejes
labs(x="x", y="f(x)", title="Primera gráfica")+
theme_bw()
ggplotly(graf_a)bisect(f_a,-5,5,500)## $root
## [1] 0.2575303
##
## $f.root
## [1] -4.440892e-16
##
## $iter
## [1] 59
##
## $estim.prec
## [1] 5.551115e-17
La raíz está en 0.2575303 c) \(2x\cos (2x)-(x+1)^2=0\) para \(-3\leq x\leq -2\) y \(-1\leq x \leq 0\)
- \(x\cos x-2x^2+3x-1=0\) para \(0.2\leq x\leq 0.3\) y \(1.2\leq x \leq 1.3\)
f_a <- function(x){x*cos(x)-2*x^2+3*x-1}
x_a <- seq(-1, 2.5, by=0.0001)
y_a <- f_a(x_a)
graf_a <- ggplot()+
geom_vline(xintercept = 0, linetype="dashed")+ #eje x
geom_hline(yintercept = 0, linetype="dashed")+ #eje y
geom_line(aes(x=x_a, y=y_a), color="red", linewidth=1)+
#coord_fixed(ratio = 1)+ # misma escala en los ejes
labs(x="x", y="f(x)", title="Primera gráfica")+
theme_bw()
ggplotly(graf_a)bisect(f_a,-1,1,500)## $root
## [1] 0.2975302
##
## $f.root
## [1] 0
##
## $iter
## [1] 56
##
## $estim.prec
## [1] 5.551115e-17
bisect(f_a,1,2,500)## $root
## [1] 1.256623
##
## $f.root
## [1] 8.881784e-16
##
## $iter
## [1] 53
##
## $estim.prec
## [1] 2.220446e-16
Ejercicio 4
Considera las funciones \(f(x)=x\) y \(g(x)=2 \sin x\). Usa el método de la bisección para encontrar una aproximación con una precisión de \(10^{-5}\) para el primer valor positivo \(x\) tal que \(f(x)=g(x)\).
Ejercicio 5
Sea \(f(x)=(x+2)(x+1)x(x-1)^3(x-2)\). ¿A cuál raíz de \(f\) converge el método de la bisección cuando se aplica a los siguientes intervalos?
\[\begin{equation} a) [-3,2.5]\qquad \qquad b) [-2.5, 3]\qquad\qquad c)[-1.75, 1.5]\qquad\qquad d) [-1.5, 1.75] \end{equation}\]
Ejercicio 6
En cada una de las siguientes ecuaciones, determina un intervalo \([a,b]\) en que convergerá la iteración de punto fijo. Estima la cantidad de iteraciones necesarias para obtener aproximaciones con una exactitud de \(10^{-5}\) y realiza los cálculos.
it_pf <- function(g, q0, pr=1e-5, N=100){
cond <- 1
it <- 1
q <- q0
while(cond==1){
if(it<=N){
q[it+1] = g(q[it]) # iteración de la función
pr_it <- abs(q[it+1]-q[it]) # precisión en la iteración
if(pr_it<pr){
resultados <- list(sucesion=q, precision=pr_it, iteraciones=it)
return(resultados)
cond <- 0
}#final del segundo if
else{it <- it+1}
}#final del primer if
else{
print("Se alcanzo el maximo de iteraciones")
cond <- 0
}#fin del else
}#final del while
}# final de la función- \(\quad x=\frac{2-e^{x}+x^{2}}{3}\)
f <- function(x){x}
g <- function(x){(2-exp(x)+x^2)/3}
h <- function(x){g(x)-f(x)}
graf <- ggplot()+
#geom_vline(xintercept = 0, linetype="dashed")+ #eje x
#geom_hline(yintercept = 0, linetype="dashed")+ #eje y
#geom_line(aes(x=x_a, y=y_a), color="red", linewidth=1)+
geom_function(fun=f,color="red",linewidth=0.75,n=200)+
geom_function(fun=g,color="blue",linewidth=0.75,n=200)+
geom_function(fun=h,color="yellow",linewidth=0.75,n=200)+
coord_fixed(ratio = 1)+ # misma escala en los ejes
xlim(-2,2)+
labs(x="x", y="f(x)", title="Primera gráfica")+
theme_bw()
ggplotly(graf)it_pf(g,0,pr=1e-10)## $sucesion
## [1] 0.0000000 0.3333333 0.2384996 0.2625130 0.2562399 0.2578654 0.2574433
## [8] 0.2575529 0.2575244 0.2575318 0.2575299 0.2575304 0.2575303 0.2575303
## [15] 0.2575303 0.2575303 0.2575303 0.2575303 0.2575303
##
## $precision
## [1] 3.945999e-11
##
## $iteraciones
## [1] 18
bisect(h,0,1)## $root
## [1] 0.2575303
##
## $f.root
## [1] 1.110223e-16
##
## $iter
## [1] 55
##
## $estim.prec
## [1] 5.551115e-17
\(\quad x=\frac{5}{x^{2}}+2\)
\(\quad x=\left(e^{x} / 3\right)^{1 / 2}\)
f <- function(x){x}
g <- function(x){sqrt(exp(x)/3)}
h <- function(x){g(x)-f(x)}
graf <- ggplot()+
#geom_vline(xintercept = 0, linetype="dashed")+ #eje x
#geom_hline(yintercept = 0, linetype="dashed")+ #eje y
#geom_line(aes(x=x_a, y=y_a), color="red", linewidth=1)+
geom_function(fun=f,color="red",linewidth=0.75,n=200)+
geom_function(fun=g,color="blue",linewidth=0.75,n=200)+
geom_function(fun=h,color="yellow",linewidth=0.75,n=200)+
coord_fixed(ratio = 1)+ # misma escala en los ejes
xlim(-2,2)+
labs(x="x", y="f(x)", title="Primera gráfica")+
theme_bw()
ggplotly(graf)it_pf(g,1,pr=1e-10)## $sucesion
## [1] 1.0000000 0.9518897 0.9292650 0.9188121 0.9140225 0.9118362 0.9108400
## [8] 0.9103864 0.9101800 0.9100860 0.9100433 0.9100238 0.9100150 0.9100109
## [15] 0.9100091 0.9100083 0.9100079 0.9100077 0.9100076 0.9100076 0.9100076
## [22] 0.9100076 0.9100076 0.9100076 0.9100076 0.9100076 0.9100076 0.9100076
##
## $precision
## [1] 6.564504e-11
##
## $iteraciones
## [1] 27
bisect(h,0,2)## $root
## [1] 0.9100076
##
## $f.root
## [1] 0
##
## $iter
## [1] 55
##
## $estim.prec
## [1] 1.110223e-16
\(\quad x=5^{-x}\)
\(\quad x=6^{-x}\)
\(\quad x=0.5(\sin x+\cos x)\)
f <- function(x){x}
g <- function(x){0.5*(sin(x)+cos(x))}
h <- function(x){g(x)-f(x)}
graf <- ggplot()+
#geom_vline(xintercept = 0, linetype="dashed")+ #eje x
#geom_hline(yintercept = 0, linetype="dashed")+ #eje y
#geom_line(aes(x=x_a, y=y_a), color="red", linewidth=1)+
geom_function(fun=f,color="red",linewidth=0.75,n=200)+
geom_function(fun=g,color="blue",linewidth=0.75,n=200)+
geom_function(fun=h,color="yellow",linewidth=0.75,n=200)+
coord_fixed(ratio = 1)+ # misma escala en los ejes
xlim(-2,2)+
labs(x="x", y="f(x)", title="Primera gráfica")+
theme_bw()
ggplotly(graf)it_pf(g,0.75,pr=1e-10)## $sucesion
## [1] 0.7500000 0.7066638 0.7049162 0.7048179 0.7048123 0.7048120 0.7048120
## [8] 0.7048120 0.7048120
##
## $precision
## [1] 5.868017e-11
##
## $iteraciones
## [1] 8
bisect(h,0,1)## $root
## [1] 0.704812
##
## $f.root
## [1] 1.110223e-16
##
## $iter
## [1] 54
##
## $estim.prec
## [1] 1.110223e-16